﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ASPPanificadora.fabrica;
using NHibernate;
using ASPPanificadora.classes;

namespace ASPPanificadora.controller
{
    public class SerialSistemaController : ISerialSistemaController
    {
        Fabrica fabrica = new Fabrica();
        public string Salvar(SerialSistema serialSistema)
        {
            return fabrica.Salva(serialSistema);
        }

        public IList<SerialSistema> Recuperar()
        {
            ISession sessao = fabrica.sessao();
            IList<SerialSistema> serialSistema = sessao.CreateCriteria<SerialSistema>().List<SerialSistema>();
            fabrica.fechaSessao();
            return serialSistema;
        }


        public SerialSistema PesquisarPorId(int id)
        {
            ISession sessao = fabrica.sessao();
            SerialSistema serialSistema = sessao.Get<SerialSistema>(id);
            fabrica.fechaSessao();
            return serialSistema;
        }


        public int SeriaisDisponiveis()
        {
            ISession sessao = fabrica.sessao();
            UsuarioController usuarioController = new UsuarioController();
            int qtdeUsuarios = usuarioController.QtdeUsuarios();
            int qtdeSeriais = sessao.CreateCriteria<SerialSistema>().List<SerialSistema>().Count();
            fabrica.fechaSessao();
            
            if (qtdeSeriais != 0 && qtdeUsuarios != 0 && qtdeSeriais > qtdeUsuarios)
                return qtdeSeriais - qtdeUsuarios;
            else
                return 0;

        }
    }
}